import {
  wallet_info,
  wallet_recharge,
  wallet_create
} from "../../api/http"

Page({

  /**
   * 页面的初始数据
   */
  data: {
    value: "",
    isShow: false,
    message: "未开通",
    code: 0,
    isModiftyPwd: false,
    form: {},
    wallet_money: "0.00"
  },
  // 获取输入的密码
  getPwdFn(e) {
    let key = e.currentTarget.dataset.key;
    let v = e.detail.value;
    let form = this.data.form;
    form[key] = v;
    this.setData({
      form
    })
  },
  // 确定密码(开通钱包)
  async addWalletPwdFn() {
    // console.log(this.data.form)
    let pwd = this.data.form.pwd;
    let pwd2 = this.data.form.pwd2;
    if (pwd == undefined || pwd2 == undefined) {
      wx.showToast({
        icon: 'none',
        title: '输入框不能为空',
      })
      return false;
    }
    if (pwd.length != 6) {
      wx.showToast({
        icon: 'none',
        title: '请输入6位数字密码',
      })
      return false;
    }

    if (pwd != pwd2) {
      wx.showToast({
        icon: 'none',
        title: '两次输入的密码不一致',
      })
      return false;
    }
    let token = wx.getStorageSync('token')
    let user_phone = wx.getStorageSync('user_phone')
    if (token) {
      // 参数：token, user_id, user_phone, wallet_pwd
      await wallet_create({
          token,
          user_phone,
          wallet_pwd: pwd
        })
        .then(
          content => {
            console.log(content)
            let {
              code,
              msg
            } = content;
            if (code == 200) {
              this.setData({
                code: 200
              })
              wx.showToast({
                icon: 'none',
                title: msg,
                message: '已开通'
              })
            } else {
              wx.showToast({
                icon: 'none',
                title: msg,
              })
            }

            this.setData({
              isModiftyPwd: false
            })
          },
          err => {
            console.log(err);
            this.setData({
              isModiftyPwd: false
            })
          }
        )
    } else {
      wx.showToast({
        icon: 'none',
        title: '您尚未登录。',
      })
      this.setData({
        isModiftyPwd: false
      })
    }
  },
  // 关闭输入密码
  closePwd() {
    this.setData({
      isModiftyPwd: false
    })
  },
  // 开通钱包提示
  async walletCreateFn() {
    this.setData({
      isModiftyPwd: true
    })
  },
  // 获取钱包信息
  async wallet_infoFn() {
    let token = wx.getStorageSync('token')
    if (token) {
      await wallet_info({
          token
        })
        .then(
          content => {
            console.log("钱包信息：",content)
            let {
              code,
              msg,result
            } = content;
            if (code == 200) {
              this.setData({
                message: '已开通',
                code: 200
              })

              let str = typeof result[0].wallet_money == 'string' ? result[0].wallet_money: result[0].wallet_money.toString()
              let wallet_money = str.indexOf(".")>-1 ? str: str+".00"
              this.setData({wallet_money})
            } else {
              // wx.showToast({
              //   icon: 'none',
              //   title: msg,
              // })
            }
          },
          err => {
            console.log(err);
          }
        )
    } else {
      wx.showToast({
        icon: 'none',
        title: '您尚未登录。',
      })
    }

  },
  closeRecharge() {
    this.setData({
      isShow: false
    })
  },
  showRecharge() {
    this.setData({
      isShow: true
    })
  },
  getKeyTap(e) {
    let {
      code
    } = e.currentTarget.dataset;
    let str = this.data.value;
    let arr = str.split("");
    let newArr = arr.filter(item => item == ".");
    if (newArr.length >= 1 && code === ".") return false; // 数值中只允许有一个小数点字符
    if (arr.indexOf(".") > -1 && arr.slice(arr.indexOf(".") + 1, arr.indexOf(".") + 3).length >= 2) return false; //取小数点后两位
    if (arr.length == 0 && code === ".") return false; // 数值中第一个字符不能是“。”
    if (arr[0] == "0" && (code === "0" && arr[1] != ".")) return false; // 数值中不能开头连续是“0”字符
    arr.push(code);
    this.setData({
      value: arr.join("")
    })
  },
  deleteCode() {
    let str = this.data.value;
    let arr = str.split("");
    if (arr.length == 0) return false;
    let newArr = arr.slice(0, arr.length - 1)
    this.setData({
      value: newArr.join("")
    })
  },

  // 确定充值
  async  confirmValue() {
    if (this.data.value.lastIndexOf(".") > -1) {
      this.setData({
        value: parseFloat(this.data.value) + ""
      })
    }
    
    if(this.data.value == undefined || this.data.value == ""|| isNaN(this.data.value)) {
      wx.showToast({
        title: '请输入金额',
        icon: 'none'
      })
      return false;
    }

    // console.log(parseFloat("金额:",this.data.value))

    // 调用充值接口
    let token = wx.getStorageSync('token')
    if(token) {
      let money = this.data.value;
      await wallet_recharge({token,money})
      .then(
        content=>{
           console.log("充值结果:",content)
           let {code , msg } = content;
           if(code == 200) {
              // 获取钱包信息
              this.wallet_infoFn();
              this.setData({value: ""})
           }

           wx.showToast({
             title: msg,
             icon:'none'
           })

        },
        err=> {
          console.log(err)
        }
      )
      // 隐藏输入金额的界面
      this.setData({
        isShow: false
      })
    }
    else {
      wx.showToast({
        icon: 'none',
        title: '您尚未登录。',
      })
    }
   
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 获取钱包信息
    this.wallet_infoFn();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})